'''
简明版兰顿蚂蚁示例。
作者：侯展意
协议：木兰2.0
'''

import numpy as np
import takagiabm as tak


def agentSetup(model):
    for i in range(1):
        a = tak.GridAgent(np.array([int(model.width / 2), int(model.height / 2)]))
        triangle2 = tak.scale(tak.takTriangle, 3)  # 设置形状为takagi库的三角形，缩放比例为3.
        a.setShape(triangle2)  # 设置形状为三角形。
        a.setSpeed(np.array([1, 0]))  # 设置速度。 
        a.setColor(tak.red)  # 设置颜色
        model.addAgent(a)


def agentLoop(agent):  # 代理人(也就是蚂蚁)执行的函数
    global stat
    color = agent.getCellColor()

    if (color == tak.white):
        agent.setCellColor(tak.black)
        agent.turn('RIGHT')
    else:
        agent.setCellColor(tak.white)
        agent.turn('LEFT')
    agent.move()


tak.GridAgent = tak.prepareAgent(tak.GridAgent, agentLoop)
tak.GridModel = tak.prepareModel(tak.GridModel, modelInitFunc=agentSetup, width=100, height=100,
                                 agentActivationPolicy='casual')
if __name__ == "__main__":
    tak.simStart(__file__, tak.GridModel)  # 这个方法同时启动了图形界面。
